<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件


/**
 * 无限极分类
 * @param array $data 数组
 * @param int $pid 默认的父级ID
 * @param int $level 默认的层级
 * @param int $orgCode 默认的code
 * @return array 分类好的数组
 */
//function sort($data,$pid=0,$level=1,$orgCode=''){
//    static $arr=array();
//    foreach ($data as $k => $v) {
//        if($v['parentid']==$pid){
//            $v['level']=$level;
//            if (empty($orgCode)){
//                $v['orgCode']=$v['id'];
//            }else{
//                $v['orgCode']=$orgCode.'.'.$v['id'];
//            }
//
//            $arr[]=$v;
//            $this->sort($data,$v['id'],$level+1,$v['orgCode']);
//        }
//    }
//    return $arr;
//}


/**
 * md5 解密
 */
function md5_decrypt($md5){
    //$md5 = "c1c95b382230eb9e27a60c4baceb5f2e";
    $uid = "hhp-ImZRY";
    $token = strtolower(md5('1878399009'));
    $url = "http://www.ttmd5.com/do.php?c=Api&m=crack&uid=$uid&token=$token&cipher=$md5";
    $data = file_get_contents($url);
    return $data;
}


/**
 * @Notes: php过滤函数 只保留中文英文
 */
function match_chinese($chars,$encoding='utf8'){
    $pattern =($encoding=='utf8')?'/[\x{4e00}-\x{9fa5}a-zA-Z0-9]/u':'/[\x80-\xFF]/';
    preg_match_all($pattern,$chars,$result);
    return join('',$result[0]);
}


/**
 * 字符串截取 超出用...
 */
function cut_str($sourcestr,$cutlength)
{
    $returnstr='';
    $i=0;
    $n=0;
    $str_length=strlen($sourcestr);//字符串的字节数
    while (($n<$cutlength) and ($i<=$str_length))
    {
        $temp_str=substr($sourcestr,$i,1);
        $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
        if ($ascnum>=224)    //如果ASCII位高与224，
        {
            $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范，将3个连续的字符计为单个字符
            $i=$i+3;            //实际Byte计为3
            $n++;            //字串长度计1
        }
        elseif ($ascnum>=192) //如果ASCII位高与192，
        {
            $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范，将2个连续的字符计为单个字符
            $i=$i+2;            //实际Byte计为2
            $n++;            //字串长度计1
        }
        elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母，
        {
            $returnstr=$returnstr.substr($sourcestr,$i,1);
            $i=$i+1;            //实际的Byte数仍计1个
            $n++;            //但考虑整体美观，大写字母计成一个高位字符
        }
        else                //其他情况下，包括小写字母和半角标点符号，
        {
            $returnstr=$returnstr.substr($sourcestr,$i,1);
            $i=$i+1;            //实际的Byte数计1个
            $n=$n+0.5;        //小写字母和半角标点等与半个高位字符宽…
        }
    }
    if ($str_length>$i){
        $returnstr = $returnstr . "…";//超过长度时在尾处加上省略号
    }
    return $returnstr;
}